﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AlgoritimoGenetico.ambiente;

namespace PernambucoImortal
{
    public partial class Form1 : Form
    {
        List<byte> perfilTurista = new List<byte>();
        
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void _mountProfile()
        {
            perfilTurista.Add(_checkBoxToByte(chkBoxShows));
            perfilTurista.Add(_checkBoxToByte(chkBoxConsHist));
            perfilTurista.Add(_checkBoxToByte(chkBoxApoio));
            perfilTurista.Add(_checkBoxToByte(chkBoxPraias));
            perfilTurista.Add(_checkBoxToByte(chkBoxCachoeiras));
            perfilTurista.Add(_checkBoxToByte(chkBoxArtesanato));
            perfilTurista.Add(_checkBoxToByte(chkBoxParques));
            perfilTurista.Add(_checkBoxToByte(chkBoxEcoTur));
            perfilTurista.Add(_checkBoxToByte(chkBoxHospit));
            perfilTurista.Add(_checkBoxToByte(chkBoxBancos));
            perfilTurista.Add(_checkBoxToByte(chkBoxHotLuxo));
            perfilTurista.Add(_checkBoxToByte(chkBoxHotMtConf));
            perfilTurista.Add(_checkBoxToByte(chkBoxHotMeConf));
            perfilTurista.Add(_checkBoxToByte(chkBoxHotConf));
            perfilTurista.Add(_checkBoxToByte(chkBoxHotSimp));
            perfilTurista.Add(_checkBoxToByte(chkBoxRestMenor20));
            perfilTurista.Add(_checkBoxToByte(chkBoxRestMenor40));
            perfilTurista.Add(_checkBoxToByte(chkBoxRestMenor60));
            perfilTurista.Add(_checkBoxToByte(chkBoxRestMaior60));
            perfilTurista.Add(_checkBoxToByte(chkBoxAeroporto));
            perfilTurista.Add(_checkBoxToByte(chkBoxTermRodov));
            perfilTurista.Add(_checkBoxToByte(chkBoxLocVeic));
            perfilTurista.Add(_checkBoxToByte(chkBoxSeg));
            perfilTurista.Add(_checkBoxToByte(chkBoxTranspLoc));
            perfilTurista.Add(_checkBoxToByte(chkBoxNotur));
        }

        private byte _checkBoxToByte(CheckBox checkBox)
        {
            return checkBox.Checked ? (byte)1 : (byte)0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _mountProfile();
            Ambiente amb = new Ambiente(/*Tamanho da População:*/10,
                                        /*Tamanho da Rota:*/5,
                                        /*Máximo de Épocas:*/10,
                                        /*Taxa de Cruzamento:*/0.8,
                                        /*Taxa de Mutação*/0.1,
                                        /*Taxa de Elitismo:*/0.7,
                                        /*Perfil do Turista:*/perfilTurista);
            MessageBox.Show(amb.Run());
        }
    }
}
